import os

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示

path = 'C:/Users/pc/Desktop/工作量统计/'
# 1.建立一个空的df用于合并读取后的所有数据
df = pd.DataFrame()

# 2.遍历所有的文件后，将数据进行合并
for fileName in os.listdir(path):
    data = pd.read_csv(path + fileName)
    df = pd.concat([df, data])

# 3.进行数据清洗，删除空白列
df.dropna(axis=1, inplace=True)
# print(df.info())

# 4.求工作量的平均值
print(df["小时"].mean())

# 5.按人员进行汇总统计工作量并形成图表
sumByUser = df.groupby("用户")["小时"].sum()
# print(sumByUser)
sumByUser.plot(kind='bar', fontsize=16, title="工作量统计 按人员（小时）")
for x, y in enumerate(sumByUser):
    plt.text(x, y + 2, y, fontsize=16, ha='center')
plt.show()

# 7.按月份和人员进行工作量汇总统计并形成图表
df["month"] = pd.to_datetime(df["日期"]).dt.month
sumByUserMonth = df.groupby(["month", "用户"])["小时"].sum()
# print(sumByUserMonth)
sumByUserMonth.plot(kind='bar', fontsize=16, title='按月份和人员统计工作量（小时）')
for x, y in enumerate(sumByUserMonth):
    plt.text(x, y + 2, y, ha='center', fontsize=16)
plt.show()